package com.piotrs10.bsk.gui.views;

import java.util.ArrayList;
import java.util.Iterator;

import com.piotrs10.bsk.dao.PracownikDao;
import com.piotrs10.bsk.dao.SamochodDao;
import com.piotrs10.bsk.dao.SprzedajeDao;
import com.piotrs10.bsk.dao.SprzedazDao;
import com.piotrs10.bsk.model.Pracownik;
import com.piotrs10.bsk.model.Samochod;
import com.piotrs10.bsk.model.Sprzedaje;
import com.piotrs10.bsk.model.Sprzedaz;
import com.vaadin.ui.Button.ClickEvent;
import com.vaadin.ui.ComboBox;
import com.vaadin.ui.Table;
import com.vaadin.ui.Window;

public class ModifySprzedaje extends ModifyLayout {

	/**
	 * 
	 */
	private static final long serialVersionUID = -5016492466760566990L;

	private ComboBox pracownikBox, sprzedazBox;

	public ModifySprzedaje(boolean isInsert, String id, Window modalWindow) {
		super(isInsert, modalWindow);

		this.pracownikBox = new ComboBox("Pracownik");
		this.sprzedazBox = new ComboBox("Sprzedaz");

		this.loadComboBox(isInsert, id);

		this.fieldsPanel.addComponent(this.pracownikBox);
		this.fieldsPanel.addComponent(this.sprzedazBox);
		this.fieldsPanel.addComponent(this.commitButton);
	}

	private void loadComboBox(boolean insert, String id) {
		// TODO: Pobrac z bazy danych co trzeba
		ArrayList<Pracownik> pracownikList = new PracownikDao().getAll();
		for(Pracownik current : pracownikList) {
			this.pracownikBox.addItem(current.getId());
		}
		ArrayList<Sprzedaz> sprzedazList = new SprzedazDao().getAll();
		for(Sprzedaz current : sprzedazList) {
			this.sprzedazBox.addItem(current.getId());
		}
		
		if(insert == false) {
			String[] ids = id.split(",");
			
			Iterator<?> iterator = this.sprzedazBox.getItemIds().iterator();
			Object item = null;
			int typId = 0;
			do {
				item = iterator.next();
				typId = Integer.valueOf(this.sprzedazBox.getItemCaption(item));
			} while(typId != Integer.valueOf(ids[1]));
			this.sprzedazBox.setValue(item);
			
			iterator = this.pracownikBox.getItemIds().iterator();
			item = null;
			typId = 0;
			do {
				item = iterator.next();
				typId = Integer.valueOf(this.pracownikBox.getItemCaption(item));
			} while(typId != Integer.valueOf(ids[0]));
			this.pracownikBox.setValue(item);
		}
	}

	@Override
	public void buttonClick(ClickEvent event) {
		// TODO Auto-generated method stub
	}

	public static void fillTable(Table table) {
		table.addContainerProperty("Pracownik", Integer.class, null);
		table.addContainerProperty("Sprzedaz", Integer.class, null);
		ArrayList<Sprzedaje> list = new SprzedajeDao().getAll();
		for (int j = 0; j < list.size(); j++) {
			Sprzedaje s = list.get(j);
			table.addItem(new Integer[] {s.getPracownik() , s.getSprzedaz() }, j);
		}
	}
	
	public static void refresh(Table table) {
		table.removeAllItems();
		ArrayList<Sprzedaje> list = new SprzedajeDao().getAll();
		for (int j = 0; j < list.size(); j++) {
			Sprzedaje s = list.get(j);
			table.addItem(new Integer[] {s.getPracownik() , s.getSprzedaz() }, j);
		}
	}

	public String getWinWidth() {
		return "250px";
	}

	public String getWinHeight() {
		return "170px";
	}
}
